LibYML (a fork of unsafe-libyaml)
LibYML is a Rust library for working with YAML data, forked from unsafe-libyaml. It offers a safe and efficient interface for parsing, emitting, and manipulating YAML data.
Features
- Serialization and Deserialization: Easy-to-use APIs for serializing Rust structs and enums to YAML and vice versa.
- Custom Struct and Enum Support: Seamless serialization and deserialization of custom data types.
- Comprehensive Error Handling: Detailed error messages and recovery mechanisms.
- Streaming Support: Efficient processing of large YAML documents.
- Alias and Anchor Support: Handling of complex YAML structures with references.
- Tag Handling: Support for custom tags and type-specific serialization.
- Configurable Emitter: Customizable YAML output generation.
- Extensive Documentation: Detailed docs and examples for easy onboarding.
- Safety and Efficiency: Minimized unsafe code with an interface designed to prevent common pitfalls.
Installation
Add this to your Cargo.toml
:
[]
= "0.0.5"
Usage
Here's a quick example on how to use LibYML to parse a YAML string:
use MaybeUninit;
use ;
Documentation
For full API documentation, please visit https://doc.libyml.com/libyml/ or https://docs.rs/libyml.
Rust Version Compatibility
Compiler support: requires rustc 1.56.0+
Contributing
Contributions are welcome! If you'd like to contribute, please feel free to submit a Pull Request on GitHub.
Credits and Acknowledgements
LibYML is a fork of the work done by David Tolnay and the maintainers of unsafe-libyaml. While it has evolved into a separate library, we express our sincere gratitude to them as well as the libyaml maintainers for their contributions to the Rust and C programming communities.
License
MIT license, same as libyaml.